package main

import "github.com/gin-gonic/gin"

// 路由分组
func main() {
	r := gin.Default()
	// 简单使用
	p := r.Group("user")
	{
		p.GET("", GetHandler)
		p.POST("", PostHandler)
		p.DELETE("/:id", DeleteHandler)
	}
	// 嵌套使用
	group1 := r.Group("api")
	{
		p1 := group1.Group("v1")
		{
			p1.GET("user", GetV1Handler)
			p1.POST("user", PostV1Handler)
		}
		p2 := group1.Group("v2")
		{
			p2.GET("user", GetV2Handler)
			p2.POST("user", PostV2Handler)
		}
	}
	r.Run()
}

func DeleteHandler(c *gin.Context) {
	id := c.Param("id")

	c.JSON(200, gin.H{
		"msg": "delete",
		"id":  id,
	})
}

func PostHandler(c *gin.Context) {

	c.JSON(200, gin.H{
		"msg": "post",
	})
}

func GetHandler(c *gin.Context) {
	c.JSON(200, gin.H{
		"msg": "get",
	})
}
func GetV1Handler(c *gin.Context) {
	c.JSON(200, gin.H{
		"msg":     "get",
		"version": "v1",
	})
}
func PostV1Handler(c *gin.Context) {

	c.JSON(200, gin.H{
		"msg":     "post",
		"version": "v1",
	})
}
func GetV2Handler(c *gin.Context) {
	c.JSON(200, gin.H{
		"msg":     "get",
		"version": "v2",
	})
}
func PostV2Handler(c *gin.Context) {

	c.JSON(200, gin.H{
		"msg":     "post",
		"version": "v2",
	})
}
